THE PANELS OF ISTAR

Page still under construction

Here we describe some of the panels you will encounter in using Istar. Those not described here should be fairly obvious once you know these.

THE SCREENS

Istar uses two screens, separate from Workbench. The Control Screen comes up first, with a grey background. It is used for the panels. The main Easel comes up when you have a knowledge base ready. Its size can changed with the Prefs button on Initial Control Panel.

The control screen usually resides along the bottom and can be moved manually using the two-pixel strips along its top. Then there is a thin backdrop window that shows the meanings of items. Important on this window is the gadget at the left hand end with two arrows. This moves the control screen up and down quickly.

The Initial Control Panel

This small panel resides top left corner of the control screen. It has one column of buttons that are relevant to the program itself, even when there is no KB - things like 'About' and 'Quit'. The 'Errors' button allows you to explore the various levels of any error that occurs, though it is perhaps of more use to technical users.

The 'Prefs' button takes you to the Preferences Panel.

But, to get going, use 'New' or 'Get KB', which will, respectively, create a new KB for you or load an existing one. When a KB is successfully loaded the main easel will appear and on the control screen a KB panel will appear. You can load or create any number of KBs (depending on memory), each with a drawing easel and each with its own KB panel.

(In version 1.01 you could only have a single KB at a time and there was no KB panel. Instead, the main control panel held three columns of buttons and there were separate panels to select item type, relationship type and to show the goal list.)

The 'Prefs' button brings up a Preferences panel.

The Preferences Panel

This panel is being developed. You should normally only alter it right at the start of the program at present, as some of its facilities have little or no effect after a KB has arisen. Try things and see: if it works, fine, if not, remember to set it at start next time.

Its main purpose is to set a few parameters relating to new knowledge bases (standard values in brackets):

Dimensions are measured in 1/256 of inch (approx. tenth of a millimetre).

It also allows you to set the amount by which all main Easels scroll and to select fonts for:

Note that changes to the main easel font are only effective next easel you bring up.

Main Knowledge Base Panel

There is one Knowledge Base (KB) Panel for each knowledge base that Istar is dealing with. It comprises two columns of buttons at its left and two lists at its right, with a few other buttons. The name of the KB is shown in the window title of the panel.

First column are to do with current KB:

Second column are to do with the knowledge in the current KB:

Over the right hand half are two lists that are standard panel lists. Above, is the Item Types list. This is perhaps the most frequently used, as you change item type. Adjoining it are buttons to create a new item type, see and edit an existing type, and get rid of an item type (dangerous, since you lose all items of that type; try it on a dummy KB you have created for the purpose!).

Below right is the Relationship Types list, with buttons to create a new relationship type or edit an existing one. You will seldom use this list, except when you are making up specific relationships.

Program-wise, the KB Panel is controlled internally by a yyModuleKBData (where yy is the signature of the module that is the program, e.g. 'kt' for Istar or 'nn' for Annotator) structure which holds all information that pertains to the access to this particular knowledge base by this particular running of this program (or, strictly, module). Normally it would hold the addresses of gadgets for the KB Panel. In this way we obtain an easy way for any program to have any number of KBs active at any time, each having different current item types etc.

Second column of KB Panel, in the middle, there is a three-part gadget which has the name of the current goal list in its middle. Left wee button allows you to select a new goal list from among the lists currently in the KB. Right wee 'S' button will bring up the goal lists's Item Details Panel so you can peruse and, if needed, reorder, the goals in the list. Hitting the ResetGoals and InferGoals buttons operate of the current goal list.

Creating a New Item Type

To create a new item type the main thing is to give it a name, and then some other information depending on what you want it for. On the KB Panel, hit the 'New' button adjoining the item types list. This creates a new item type with null name (a dash) and presents you with the Item Type Panel for this, where you fill in its details.

Creating a New Relationship Type

Click the 'New' button adjoining the Relationship Types list on the KB panel. A new type is created for you, and the Relationship Type Panel appears, allowing you to fill in its name and other details.

To Create a New Domain (Attribute Type)

There are two ways of creating a new domain or attribute type.

At any time you can create one by hitting the 'Att Types' button in the second column of the KB Panel. This brings up a panel of currently available domains. Hit the adjoining 'New' button, and up comes the New Domain Panel.

Or you can create one while in the process of adding an attribute to an item or an item type - which is convenient since it is often at that point that you realise the domain you need is not available. To start this, you hit the 'New' button adjoining a list of attributes, and this brings up the Add Attribute Panel from which you can access the New Domain Panel.

The KBA Panel

Hit the 'KB Area' button on KB panel, and up comes the 'Knowledge Base Area' (KBA) panel, which tells you various things about the KB itself. The most useful things are:

Altering the last two resizes the KBA when you hit 'OK' (though it doesn't work yet in Version 1.03) but you should seldom need to do so. Of minor interest are the following:

Other, less useful things are:

The Attribute Details Panel

The Attribute Details panel for an attribute gives lots of information about it. The main way to bring it up is to click with RMB on an attribute box, but it will also come up if you hit the 'See' button of any panel list that shows attributes. The panel is multi-threading so that you can have any number of them up at once and can continue to operate the main easel and other panels the while.

For details of this panel, see p.adp.html, which shows an example as an imagemap to all its parts. The information it contains includes:

The User Texts Panel

(This is available only from Version 1.0872. Before that, some user texts are set up on the Attribute Details Panel).

The User Texts Panel allows you to set up texts that the user will experience when running the KB. There are a number of texts, with various purposes, and a means of moving and swapping texts around. The texts that can be set from the panel include:

The Attribute Action Panel

The Attribute Action Panel is a small panel with various buttons allowing you to take action on the attribute. The panel is small so you can have several in view, for several attributes in which you have an interest. The buttons include:

The Item Details Panel

The item details panel can be accessed by clicking the 'See' button on the attribute details panel attached to the item name. It will also appear if you click on an item box on the easel, such as a form.

Most of it is straightforward, such as label/name and meaning. There is a list of attributes it contains taking up most of the left hand side. With this you can select an attribute and bring up its panel with 'See' and you can make it the first attribute in the item with 'To 1', though this has very little effect in the current version.

You can attach an item to topics as above.

The two buttons concerned with importing and displaying text are not effective in this version.

The Relationship Instance Details Panel

The relationship details panel comes up if you click on a link on the main easel or if you click the wee 'R' button at the bottom of the attribute detaild panel. It gives details about the relationship, including antecedent and consequent.

The main things of interest are the unary operator, and the weight. The use of these is explained in the document.

The Explain button brings up an explanation of what would happen when inference is performed with this relationship.

Item Type Panel

The Item Type Panel shows details of an item type. Normally you will see it when you create a new item type but sometimes you may wish to alter details of an existing one. When creating a new item type:

(The new type is automatically selected for drawing.)

Items for Semantic Net

In a semantic net (or a cognitive map) the important thing about items is the relationships they have with other items. So it is a good idea to define relationship types that will be drawn from the items of this type. So we add a couple of extra steps to the above, to define the relationship types you want (not available until version 1.03).

Now you're done, draw two items of this new type on the easel. Draw a link from the right hand edge of the left one to the other. It should draw a Precedence (or your chosen) relationship; you can check this by bringing up the Relationship Instance Details panel for the relationship.

Note that we did not set the 'Left' relationship type. We could do so. But when it is 'None' then the type drawn will be that shown selected in the Relationship Types List on the KB panel.

Items as Database Records

The other main use of items is as a database record, a collection of attributes. So for this, we take a few extra steps to add attributes. (You can create item types with both relationship types and attributes; no problem.)

Items as Free Attributes

Free attributes have items that are not visible and whose only reason for existence is to support the single attribute. Such items are defined as having precisely one attribute and having no item box. You will seldom need to create a free attribute item type, because they are usually created automatically when you create an attribute type, but should you need to, the procedure is a variation on the above, as follows:

You can also create a free attribute item type via the Attribute Type Panel.

Attribute Types List Panel

This panel is a standard panel list. It shows the currently available domains (attribute types) plus a few other buttons:

Attribute Type Panel

This panel shows the details of an attribute type (domain), including standard things like its name, meaning, value type, and visual appearance. In addition it has a list of Value Names, especially for use in enumerated and ordinal types, and a button that creates a free attribute item type for it.

New Domain Panel

This panel allows you to create a new domain. You will probably use it most to create enumerated and ordinal types. It is fairly simple process, in which the steps are numbered for you:

  1. Select the value type for the domain.
  2. Enter a name for it.
  3. Enter a meaning for it, if any.
  4. Hit 'OK'
Sometimes, after this the Attribute Type Panel comes up to allow you to set other details if you wish.

Relationship Type Panel

This panel allows you to define or change the details for the relationship type, including its name, its usage syntax and semantics, and the visual appearance of the lines that express its instances on the main easel.

Note that, though now selected in the Relationship Types list in the KB Panel, the next relationship you draw might not be of this type, since the selected item type might have a standard relationship type.

Note that if you alter the visual appearance, existing instances of this type will not be altered in visual appearance. But new instances will take on the new appearance. Also, when you bring up a Relationship Details panel and click 'OK' the visual appearance will change.

BEWARE: Do not change parameters of the standard relationship types (though you may change their visual appearance to suit your tastes). In particular, if you make 'Inference' to be not a DAG you will be allowed to create an infinite loop in the KB.

Topics

The Topics panel is brought up for an item, attribute or relationship and shows one or more banks of checkboxes, each with the name of a topic. You can link your thing to any of the topics shown by ticking the appropriate boxes. You can set up new topics by hitting the Topics button on KB Panel.

References

The References facility is not yet available. It will allow you to link things to external references, e.g. to record why it was that you linked two attributes that would not normally be linked.

The List Panel

The Lists Panel is used to form lists, in a two-step operation which is shown on the panel as two long cycle buttons, the width of the panel, and various detail gadgets below them:

You might notice that these operations are similar to various database-like operations, including SELECT and JOIN.

Finding Something by Name

On main control panel, click the 'Find' button. This brings up the Find panel (which in the current version is rather sparse and empty). It allows you to find attributes, attribute types, items, item types, relationships, relationship types by sub-strings their names contain.

# Enter the sub-string in the long string gadget at the top.

# Then click either Item, Att or Rel, depending on what you want to find. It then brings up a panel for the thing found, if any: an attribute action panel, an item details panel or a relationship instance panel.

# Note that it will search the types before the instances.

# If it's not the one you want, send that panel away (Cancel or Done) and click Continue. It will continue the search from where it left off.

# You can watch the number.

# If you want to find the total number of items, attributes or relationships, clear the string gadget and hit the appropriate button. The number then shows you the total number, including the number of types.

# (Note that in current version, Rel does not work.)

End User Panels

These are forms that appear when the KB is being run. That is, the end user sees them.

Runtime Value Entry

This panel, presented during the inference process, asks for the value of one attribute. It has:

The End User Form

It can be cumbersome to the user to be asked six questions one by one, especially when they all concern one entity, such as name, address, age, gender of a patient. Such attributes can be linked to a Form, so that if any one of them is needed then a Form panel is presented which requests them all.

At present, the Form facility is simple, and has the following characteristics:

As KB developer creating a Form is easy. Select 'Form' from the itemtypes list and place a box somewhere to the left of the group of attributes that you wish to go in the Form. Then draw relationships from the RHS of the Form box to each attribute in turn (you must draw in this direction since if you draw from the attribute box towards the Form box it starts to draw an inference link). Also, click on the Form box to give it a Name, Meaning and FormText. (Notice that this is the standard Item Details Panel but with an extra slot for FormText.)

The action of the inference cycle is that if a form-linked attribute is found by a backward chaining search then that attribute's Form is presented to the user with the (first 'six') attributes that are linked to it, in the order in which the Form item sees them. When the user hits the 'OK' button all those attributes become answered with the values shown on the Form. Then each such value is propagated forward before the inference cycle continues.

You can link any number of attributes to a Form. But they are presented to the user only approx 'six' at a time and when the seventh is needed by the backward chaining process the Form will be presented again with the next 'six', and so on. Note that Form only presents unanswered attributes.

Any attribute can be linked with more than one Form. It might be asked as part of Form 1 and then will not cause Form 2 to come up.

Value Gadgets

not yet written

Panel Lists

A number of panels have lists of things from which you may select, and which are surrounded by various buttons:


Copyright (c) Andrew Basden 2 February 1998. 9 December 1998 Added User Text Panel.